﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using TMPro;

public class PlayerStats : MonoBehaviour
{
    #region 单例模式
    public static PlayerStats instance;  // 单例实例

    public void Awake()
    {
        if (instance != null)
        {
            Debug.LogError("场景中存在多个 PlayerStats 实例");  // 输出错误信息，表示存在多个实例
            return;
        }
        instance = this;  // 将当前实例赋给单例变量
    }
    #endregion

    public static int Gold;       // 金币
    public static int Rounds;     // 回合数
    public static float Health;   // 生命值
    public static float Score;    // 分数

    [Header("玩家金币")]
    public int startGold = 400;                    // 初始金币数
    public TextMeshProUGUI goldText;               // 用于显示金币的文本组件
    [Space]
    [Header("玩家生命")]
    public float startHealth = 300;                 // 初始生命值
    public Image healthFill;                        // 生命值显示的填充图像
    public TextMeshProUGUI healthText;              // 用于显示生命值的文本组件

    private void Start()
    {
        Gold = startGold;                            // 初始化金币
        Health = startHealth;                        // 初始化生命值

        healthFill.fillAmount = Health / startHealth;  // 设置生命值显示的填充比例
        healthText.text = Health.ToString();          // 更新生命值文本显示

        Rounds = 0;                                   // 初始化回合数
    }

    private void Update()
    {
        goldText.text = Gold.ToString("0");           // 更新金币文本显示
    }

    public void UpdateHealth(float damage)
    {
        Health = Mathf.Clamp(Health, 0, startHealth);  // 限制生命值在0和初始生命值之间
        Health -= damage;                              // 减少生命值
        healthFill.fillAmount = Health / startHealth;  // 更新生命值显示的填充比例
        healthText.text = Health.ToString();           // 更新生命值文本显示
    }

}
